package com.zh.exception;

import org.apache.shiro.authz.AuthorizationException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;

/**
 * @Description: 全局异常处理
 * @ClassName ShiroException
 * @date: 2021.04.16 15:22
 * @Author: zhanghang
 */
@ControllerAdvice
public class ShiroException {

    /**
     * description: 没有权限异常
     * date: 2021年-04月-16日 15:24
     * author: zhanghang
     *  因为使用注解如果发生没有权限的异常时，ShiroConfig中配置的没有权限跳转地址不能生效，所以使用全局异常处理
     * @param e
     * @return java.lang.String
     */
    @ExceptionHandler(AuthorizationException.class)
    public String customException(Exception e) {
        ModelAndView mv = new ModelAndView();
        mv.addObject("message", e.getMessage());
        mv.setViewName("myerror");
        return "/error/401";
    }
}
